from pyzabbix import ZabbixAPI
import pprint

# 安装zabbix server的服务器ip
ZABBIX_SERVER = 'http://10.104.14.27'

zapi = ZabbixAPI(ZABBIX_SERVER)

# 登录
zapi.login('Admin', 'zabbix')
zapi.host.update()
# 获取主机的主机ID和主机名
hosts = zapi.host.get(
    # 获取所有字段
    # output="extend",
    # 只获取特定字段
    output=[
        "hostid",
        "host",
    ],
    # 过滤特定字段的特定值
    filter={
        "host": [
            "10.106.115.2",
        ]
    }
)
pprint.pprint(hosts)
if len(hosts) > 0:
    # 如果获取到了主机，就取出hostid字段
    item_list = zapi.item.get(
        hostids=hosts[0]["hostid"],
        applicationids='',
        filter={
            "name": [
                # 然后查询名称叫做 /: Free inodes in % 的字段的查询项
                "/: Free inodes in %",
            ]
        },
        output="extend",
    )
    pprint.pprint(item_list)
    if len(item_list) > 0:
        # 如果查询项找到了，就取出查询项的ID
        item_id = item_list[0]["itemid"]
        # 然后根据查询项的ID取出历史记录
        historys = zapi.history.get(
            # 查询项的ID
            itemids=item_id,
            history=0,
            sortfield="clock",
            sortorder="DESC",
            limit=10,
            output="extend",
        )
        pprint.pprint(historys)